From: Florian Müllner Date: Fri, 13 Sep 2019 22:03:02 +0000 (+0200) Subject: util: Handle trailing LTR/RTL markers in URLs X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~811^2^2~59 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=252e6949790f95d14bca14ff4e38fa35571f3a01;p=gnome-shell.git util: Handle trailing LTR/RTL markers in URLs Some electron apps apparently spread those generously over their notification text, so may sure to not include them accidentally in URLs. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1614 --- diff --git a/js/misc/util.js b/js/misc/util.js index 87a6c1225..db3742eb3 100644 --- a/js/misc/util.js +++ b/js/misc/util.js @@ -14,7 +14,7 @@ var SCROLL_TIME = 100; // http://daringfireball.net/2010/07/improved_regex_for_matching_urls const _balancedParens = '\\([^\\s()<>]+\\)'; const _leadingJunk = '[\\s`(\\[{\'\\"<\u00AB\u201C\u2018]'; -const _notTrailingJunk = '[^\\s`!()\\[\\]{};:\'\\".,<>?\u00AB\u00BB\u201C\u201D\u2018\u2019]'; +const _notTrailingJunk = '[^\\s`!()\\[\\]{};:\'\\".,<>?\u00AB\u00BB\u200E\u200F\u201C\u201D\u2018\u2019\u202A\u202C]'; const _urlRegexp = new RegExp( `(^|${_leadingJunk})` + diff --git a/tests/unit/url.js b/tests/unit/url.js index 158316bb4..84aecc95f 100644 --- a/tests/unit/url.js +++ b/tests/unit/url.js @@ -42,6 +42,8 @@ const tests = [ output: [ { url: 'https://www.gnome.org/(some_url,_with_very_unusual_characters)', pos: 0 } ] }, { input: 'https://www.gnome.org/(some_url_with_unbalanced_parenthesis', output: [ { url: 'https://www.gnome.org/', pos: 0 } ] }, + { input: 'https://www.gnome.org/‎ plus trailing junk', + output: [ { url: 'https://www.gnome.org/', pos: 0 } ] }, { input: 'Visit http://www.gnome.org/ and http://developer.gnome.org', output: [ { url: 'http://www.gnome.org/', pos: 6 },